Вход

Наш JavaScript может использоваться для фильтрации входов и посетителей страниц без необходимости использования ссылок перенаправления. Однако, оба метода могут и ДОЛЖНЫ использоваться вместе.

Другими словами, лучше всего, чтобы наш JS всегда присутствовал на страницах, независимо от сценария.

Это связано с тем, что JS не только отслеживает посещения страниц, но и имеет несколько вспомогательных функций, которые повышают надежность отслеживания.

Подробности нашего JavaScript уже задокументированы здесь, где объясняется, как получать данные из JS и вспомогательные функции.

Однако, я дам техническое резюме ниже.


Отслеживание просмотров JavaScript

Наш JS обрабатывает встроенные атрибуты + параметры URL, которые имеют приоритет, если присутствуют, и отправляет полезную нагрузку данных на наш edge (через пользовательский домен):

https://USER_DOMAIN/js/funnel

Наш edge ответит, если отслеживание было успешным, стандартной полезной нагрузкой, которая включает ID посетителя (VID), текущий ID узла и ID хита, например

{
    "error": "",
    "resolvedTokens": {
        "{hit}": "1wj7y5680dz26p1g9p0101",
        "{visitor}": "afdwb7QPV6Y59aTP3fQxZ3tX2ox",
        "{current-node-id}": "0XJbzUwQYEWa"
    },
    "skv": "vid"
}

ID посетителя - это идентификатор пользователя на уровне сессии. Эти объекты сессии хранятся в централизованном кэше, который развернут в нескольких дата-центрах вместе с нашим edge.

VID имеют закодированное местоположение edge в ID, так что если у пользователей присутствует значение VID и они меняют местоположение (например, VPN), наш edge может проверить правильную базу данных кэша для объекта сессии.

ID хита - это уникальный идентификатор текущего просмотра страницы. Один посетитель будет создавать уникальный ID хита для каждого узла, которого он касается.

Текущий ID узла не требует объяснений.


Встроенные атрибуты и опции

Для изменения поведения FunnelFlux JS и возвращаемых токенов, пожалуйста, см. соответствующий документ в нашем разделе JS здесь.


Вспомогательные функции

Они подробно описаны здесь.

Вот почему важно, чтобы наш JS присутствовал на всех страницах.

Во-первых, JS автоматически добавляет мета-тег referrer на страницу, который переопределяет поведение браузера по умолчанию и передает полный referrer на последующие ссылки.

Это делает предыдущий urlRewrite полезным, иначе referrer, передаваемый по умолчанию (по крайней мере, в Chrome), содержит только имя хоста

Во-вторых, элементы <a> на странице сканируются на наличие *action/*, и если найдено, наш JS добавит:

...vid=VISITOR_ID&rn=CURRENT_NODE_ID

Это явное объявление в ссылке действия устраняет любую зависимость от referrer/cookies при последующем клике, так как идентификатор сессии пользователя И ID направляющего узла объявлены.

Обратите внимание, что функция urlRewrite добавляет n=CURRENT_NODE_ID в URL, в то время как ссылки действия имеют текущий ID узла, добавленный как параметр "rn" или "referring node".

Это важно из-за нашей другой функциональности: если атрибут data-lum="action" добавлен к любому элементу <a>, мы также добавляем вышеуказанные данные.

Это полезно при прямой связи между страницами без ссылки действия (перенаправления), но когда пользователь все еще хочет обеспечить надежное отслеживание. Пример этого можно увидеть на главной странице funnelflux.com. Обратите внимание на исходный код и как ссылка на облачную опцию обновится, чтобы включить эти параметры URL.

В этом сценарии передача n=CURRENT_NODE_ID загрузила бы следующую страницу, JS загрузился бы, и параметр URL попытался бы переопределить ID текущей страницы ID предыдущего узла, вызывая проблемы. Поэтому "rn" всегда используется для ссылки на исходный узел в ссылке действия.